package com.taobao.home.service;

import com.taobao.base.model.PageParams;
import com.taobao.base.model.PageResult;
import com.taobao.base.model.RestResponse;
import com.taobao.home.model.dto.*;
import com.taobao.home.model.po.Goods;

import java.util.List;

public interface GoodsService {

    /**
     * 根据goodsId添加es文档

     */
    RestResponse<String> addGoodsDoc(int goodsId);

    /**
     * 添加商品
     */
    RestResponse<String> addGoods(GoodsDto goodsDto);

    /**
     * 根据Title查询搜素结果页预览商品
     */
    RestResponse<List<GoodsPreviewDto1>> getGoodsPreviewByTitle(String title);

    /**
     * 获取所有数据
     */
    RestResponse<List<GoodsDto>> getAllGoods();

    /**
     * 分页查询
     */
    PageResult<Goods> getGoodsByPage(PageParams pageParams, QueryGoodsParamsDto goodsParamsDto);

    /**
     *根据id查询
     */
    RestResponse<Goods> getGoodsById(int goodsId);

    /**
     * 获取本店铺商品
     */
    RestResponse<List<GoodsPreviewDto1>> getGoodsByStoreId(int storeId);

    /**
     * 查询本店商品
     */
    RestResponse<List<GoodsPreviewDto1>> getStoreIdAndTitle(StoreIdTitle storeIdTitle);

    /**
     * 推荐页商品预览
     */
    PageResult<GoodsPreviewDto> getGoodsPreview(PageParams pageParams);

    /**
     * 商品详情页面
     */
    RestResponse<GoodsDetailsDto> getGoodsDetail(int goodsId);

    /**
     * 添加商品子分类
     */
    RestResponse<String> addGoodsSubCategory(GoodsSubcategoryDto goodsSubcategoryDto);

    /**
     * 根据商品id查询子分类
     */
    RestResponse<List<GoodsSubcategoryDto>> getGoodsSubCategoryByGoodsId(int goodsId);

    /**
     * 根据商品id可购买数量
     */
    RestResponse<String> getGoodsCount(int goodsId, int num);


}
